package com.fowo.api.model.shein.order;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 希音订单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SheinOrderImportPo {

  /** 订单号 */
  @ExcelProperty("订单号")
  @Size(max = 50, message = "订单号长度不能超过50")
  private String orderNo;

  /** 订单类型 */
  @ExcelProperty("订单类型")
  private String orderType;

  /** 物流渠道 */
  @ExcelProperty("物流渠道")
  private String performanceType;

  /** 订单状态 */
  @ExcelProperty("订单状态")
  @Size(max = 50, message = "订单状态长度不能超过50")
  private String orderStatus;

  /** 是否货到付款 */
  @ExcelProperty("是否货到付款")
  private String isCod;

  /** 订单标签 */
  @ExcelProperty("订单标签")
  private String orderTag;

  /** 发货方式 */
  @ExcelProperty("发货方式")
  private String deliveryType;

  /** 订单打印状态 */
  @ExcelProperty("订单打印状态")
  private String printOrderStatus;

  /** 计费状态 */
  @ExcelProperty("计费状态")
  private String invoiceStatus;

  /** 销售价格 */
  @ExcelProperty("销售价格")
  @DecimalString(message = "销售价格小数格式不正确", label = "销售价格")
  private String settleActuallyPrice;

  /** 订单的货币 */
  @ExcelProperty("订单的货币")
  @Size(max = 50, message = "订单的货币长度不能超过50")
  private String orderCurrency;

  /** 货物总额 */
  @ExcelProperty("货物总额")
  @DecimalString(message = "货物总额小数格式不正确", label = "货物总额")
  private String productTotalPrice;

  /** 商店折扣的总额 */
  @ExcelProperty("商店折扣的总额")
  @DecimalString(
    message = "商店折扣的总额小数格式不正确",
    label = "商店折扣的总额"
  )
  private String storeDiscountTotalPrice;

  /** 活动折扣总额 */
  @ExcelProperty("活动折扣总额")
  @DecimalString(message = "活动折扣总额小数格式不正确", label = "活动折扣总额")
  private String promotionDiscountTotalPrice;

  /** 全部佣金 */
  @ExcelProperty("全部佣金")
  @DecimalString(message = "全部佣金小数格式不正确", label = "全部佣金")
  private String totalCommission;

  /** 总服务费 */
  @ExcelProperty("总服务费")
  @DecimalString(message = "总服务费小数格式不正确", label = "总服务费")
  private String totalServiceCharge;

  /** 履行服务总费用 */
  @ExcelProperty("履行服务总费用")
  @DecimalString(
    message = "履行服务总费用小数格式不正确",
    label = "履行服务总费用"
  )
  private String totalPerformanceServiceCharge;

  /** 估计总收入 */
  @ExcelProperty("估计总收入")
  @DecimalString(message = "估计总收入小数格式不正确", label = "估计总收入")
  private String estimatedGrossIncome;

  /** 订单销售税总额 */
  @ExcelProperty("订单销售税总额")
  @DecimalString(
    message = "订单销售税总额小数格式不正确",
    label = "订单销售税总额"
  )
  private String totalSaleTax;

  /** 分阶时间 */
  @ExcelProperty("分阶时间")
  @DateTimeString(message = "分阶时间不是有效的时间日期格式")
  private String orderAllocateTime;

  /** 请求交付时间 */
  @ExcelProperty("请求交付时间")
  @DateTimeString(message = "请求交付时间不是有效的时间日期格式")
  private String requestDeliveryTime;

  /** 打印时间 */
  @ExcelProperty("打印时间")
  @DateTimeString(message = "打印时间不是有效的时间日期格式")
  private String printingTime;

  /** 预计交货时间 */
  @ExcelProperty("预计交货时间")
  @DateTimeString(message = "预计交货时间不是有效的时间日期格式")
  private String scheduleDeliveryTime;

  /** 领取及签收时间 */
  @ExcelProperty("领取及签收时间")
  @DateTimeString(message = "领取及签收时间不是有效的时间日期格式")
  private String pickUpTime;

  /** 订单接收时间 */
  @ExcelProperty("订单接收时间")
  @DateTimeString(message = "订单接收时间不是有效的时间日期格式")
  private String orderReceiptTime;

  /** 订单退款时间 */
  @ExcelProperty("订单退款时间")
  @DateTimeString(message = "订单退款时间不是有效的时间日期格式")
  private String orderReturnTime;

  /** 订单信息更新时间 */
  @ExcelProperty("订单信息更新时间")
  @DateTimeString(message = "订单信息更新时间不是有效的时间日期格式")
  private String orderMsgUpdateTime;

  /** 下单时间 */
  @ExcelProperty("下单时间")
  @DateTimeString(message = "下单时间不是有效的时间日期格式")
  private String orderTime;

  /** 付款时间 */
  @ExcelProperty("付款时间")
  @DateTimeString(message = "付款时间不是有效的时间日期格式")
  private String paymentTime;

  /** 卖方交货时间 */
  @ExcelProperty("卖方交货时间")
  @DateTimeString(message = "卖方交货时间不是有效的时间日期格式")
  private String sellerDeliveryTime;

  /** 仓库交货时间 */
  @ExcelProperty("仓库交货时间")
  @DateTimeString(message = "仓库交货时间不是有效的时间日期格式")
  private String warehouseDeliveryTime;

  /** 拒绝订单时间 */
  @ExcelProperty("拒绝订单时间")
  @DateTimeString(message = "拒绝订单时间不是有效的时间日期格式")
  private String orderRejectionTime;

  /** 订单报失时间 */
  @ExcelProperty("订单报失时间")
  @DateTimeString(message = "订单报失时间不是有效的时间日期格式")
  private String orderReportedLossTime;

  /** OPS订单号 */
  @ExcelProperty("OPS订单号")
  @Size(max = 50, message = "OPS订单号长度不能超过50")
  private String billNo;

  /** 市场区域 */
  @ExcelProperty("市场区域")
  private String salesArea;

  /** 库存模式 */
  @ExcelProperty("库存模式")
  private String stockMode;

  /** 销售网站 */
  @ExcelProperty("销售网站")
  @Size(max = 50, message = "销售网站长度不能超过50")
  private String salesSite;

  /** 店铺编码 */
  @ExcelProperty("店铺编码")
  @Size(max = 50, message = "店铺编码长度不能超过50")
  private String storeCode;

  /** CutOff包裹的预计领取时间 */
  @ExcelProperty("CutOff包裹的预计领取时间")
  @DateTimeString(message = "CutOff包裹的预计领取时间不是有效的时间日期格式")
  private String expectedCollectTime;

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺", min = 0L)
  private String sid;

  /** 姓 */
  @ExcelProperty("姓")
  @Size(max = 50, message = "姓长度不能超过50")
  private String lastName;

  /** 中间名 */
  @ExcelProperty("中间名")
  @Size(max = 50, message = "中间名长度不能超过50")
  private String middleName;

  /** 名 */
  @ExcelProperty("名")
  @Size(max = 50, message = "名长度不能超过50")
  private String firstName;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String country;

  /** 省 */
  @ExcelProperty("省")
  @Size(max = 50, message = "省长度不能超过50")
  private String province;

  /** 市 */
  @ExcelProperty("市")
  @Size(max = 50, message = "市长度不能超过50")
  private String city;

  /** 区 */
  @ExcelProperty("区")
  @Size(max = 50, message = "区长度不能超过50")
  private String district;

  /** 街道 */
  @ExcelProperty("街道")
  @Size(max = 50, message = "街道长度不能超过50")
  private String street;

  /** 地址1 */
  @ExcelProperty("地址1")
  @Size(max = 50, message = "地址1长度不能超过50")
  private String address;

  /** 地址2 */
  @ExcelProperty("地址2")
  @Size(max = 50, message = "地址2长度不能超过50")
  private String addressExt;

  /** 手机号 */
  @ExcelProperty("手机号")
  @Size(max = 50, message = "手机号长度不能超过50")
  private String phone;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String postCode;

  /** 税号 */
  @ExcelProperty("税号")
  @Size(max = 50, message = "税号长度不能超过50")
  private String taxNo;

  /** 包裹ID */
  @ExcelProperty("包裹ID")
  @Size(max = 1000, message = "包裹ID长度不能超过1000")
  private String packageIds;

  /** 包裹运单信息 */
  @ExcelProperty("包裹运单信息")
  @Size(max = 5000, message = "包裹运单信息长度不能超过5000")
  private String packageWaybillList;
}
